;(async function(){
// 引入express模块
const express = require('express')
// 引入express-formidable模块
const formidable = require('express-formidable')
// 连接数据库
const connect = require('./db/connect')
// 引入管理员的路由
const adminRouter = require('./routers/adminRouter')
// 引入登陆界面的路由
const loginRouter = require('./routers/loginRouter')
// 引入核实token的路由
const verifyToken = require('./routers/verifyToken')
// 引入广告的路由
const advRouter = require('./routers/advRouter')

// connect的值是一个promise函数，当await等待到成功的结果，打印数据库连接成功
// 若连接失败打印数据库连接失败
// 如果数据库连接成功，await下面的代码才会执行
try {
    await connect
    console.log('数据库连接成功')
} catch (error) {
    console.log('数据库连接失败',error)
    return
}

// 创建express实例
const app = express()

// 处理静态资源中间件
app.use(express.static('public'))

// 当请求为post请求时，解析请求体中的json数据，并添加到req.body属性上
// app.use(express.json())

// 修改中间件
app.use(
    formidable({
        uploadDir: './public/uploadDir', //上传的图片存储位置
        keepExtensions: true, // 保留上传图片的后缀名
    })
)

// ✨ 管理员对应的接口
app.use(adminRouter)
// ✨ 登录对应的接口
app.use(loginRouter)
// ✨ 核实token的接口
app.use(verifyToken)
// ✨ 广告对应的接口
app.use(advRouter)

// 监听 端口号 设置域名/IP地址
app.listen(8080,(err)=>{
    if(err) console.log('服务器启动失败')
    else console.log('服务器启动成功')
})
})()